//#include <iostream>
//#include <unordered_map>
//using namespace std;
//
//unordered_map<string, int> mp;
//
//int main()
//{
//	int n; cin >> n;
//	
//	while (n--)
//	{
//		int op; cin >> op;
//		
//		if (op == 1)
//		{
//			string name; int x;
//			cin >> name >> x;
//			
//			if (mp.count(name)) mp[name] = x;
//			else mp[name] = x;
//			
//			cout << "OK" << endl;
//		}
//		else if (op == 2)
//		{
//			string name; cin >> name;
//			
//			if (mp.count(name)) cout << mp[name] << endl;
//			else cout << "Not found" << endl;
//		}
//		else if (op == 3)
//		{
//			string name; cin >> name;
//			
//			if (mp.count(name))
//			{
//				mp.erase(name);
//				cout << "Deleted successfully" << endl;
//			}
//			else
//			{
//				cout << "Not found" << endl;
//			}
//		}
//		else
//		{
//			cout << mp.size() << endl;
//		}
//	}
//	
//	return 0;
//}



//#include <iostream>
//#include <unordered_set>
//using namespace std;
//
//int main()
//{
//	int T; cin >> T;
//	
//	while (T--)
//	{
//		int n; cin >> n;
//		unordered_set<int> ha;
//		
//		for (int i = 1; i <= n; i++)
//		{
////			int x; cin >> x;
//			int x; scanf("%d", &x);
//			if (!ha.count(x))
//			{
////				cout << x << " ";
//				printf("%d ", x);
//				ha.insert(x);
//			}
//		}
////		cout << endl;
//		printf("\n");
//	}
//	
//	return 0;
//}



//#include <iostream>
//#include <set>
//#include <unordered_map>
//using namespace std;
//
//unordered_map<string, set<int>> ha;
//
//int main()
//{
//	int N; cin >> N;
//	
//	for (int i = 1; i<= N; i++)
//	{
//		int L; cin >> L;
//		
//		while (L--)
//		{
//			string s; cin >> s;
//			
//			ha[s].insert(i);
//		}
//	}
//	
//	int M; cin >> M;
//	
//	while (M--)
//	{
//		string s; cin >> s;
//		
//		for (auto i : ha[s])
//		{
//			cout << i << " ";
//		}
//		cout << endl;
//	}
//	
//	return 0;
//}



#include <iostream>
#include <unordered_map> 
using namespace std;

const int N = 2e5 + 10;

unordered_map<long long, int> ha;
int a[N];

int main()
{
	int n; cin >> n;
	int C; cin >> C;
	
	long long ret = 0;
	for (int i = 1; i <= n; i++)
	{
		cin >> a[i];
		ha[a[i]]++;
	}
	
	for (int i = 1; i <= n; i++)
	{
		ret += ha[a[i] + C];
	}
	
	cout << ret << endl;
	
	return 0;
}
